# 命令行选项

## 命令行选项

Envoy由JSON配置文件以及一组命令行选项驱动。以下是Envoy支持的命令行选项。

* **-c \\, --config-path \\**\
  &#x20;（必选）指向v1或v2 \[JSON/YAML/proto3配置文件]\((../../Configurationreference/Overviewv2API.md))的路径。若设置`-v2-config-only`选项，则将被解析为一个v2引导配置文件，如果是v1 JSON配置文件，则返回失败。对于v2配置文件，有效的扩展名是`.json`，`.yaml`，`.pb`和`.pb_text`，分别表示JSON，YAML，二进制proto3和文本proto3格式。
* **--v2-config-only**\
  &#x20;（可选）该标志表示配置文件是否仅为v2引导配置文件。如果为`false`（默认值），那么当v2引导配置解析失败时，将尝试解析为v1 JSON配置文件。
* **--mode \\**\
  &#x20;（可选）Envoy的其中一种操作模式：<br>

  serve：(默认）验证JSON配置，然后正常提供流量。\
  &#x20;validate：验证JSON配置，然后退出，打印“OK”消息（在这种情况下退出代码为`0`）或者因配置文件的任何错误（退出代码为`1`）。不会产生网络流量，并且不会执行热重启，所以不会影响其他任何进程。
* **--admin-address-path \\**\
  &#x20;（可选）将输出管理员地址和端口的文件路径。
* **--local-address-ip-version \\**\
  &#x20;（可选）用于填充服务器本地IP地址的IP地址版本。此参数影响各种标题，包括附加到`X-Forwarded-For`（XFF）头部的内容。选项是`v4`或`v6`。默认是`v4`。
* **--base-id \\**\
  &#x20;（可选）分配共享内存区域时使用的基本ID。Envoy在[热启动](/envoy/introduction/architectureoverview/hotrestart.md)期间使用共享内存区域。大多数用户不需要设置这个选项。但是，如果Envoy需要在同一台计算机上多次运行，则每个运行的Envoy都需要一个唯一的基本ID，以便共享内存区域不会发生冲突。
* **--concurrency \\**\
  &#x20;（可选）要运行的[工作线程数](/envoy/introduction/architectureoverview/threadingmodel.md)。如果未指定，则默认为机器上的硬线程数。
* **-l \\, --log-level \\**\
  &#x20;（可选）日志级别。非开发者通常不应该设置这个选项。有关可用的日志级别和默认值，请参阅[帮助文档](/envoy/operationsandadministration/commandlineoptions.md)。
* **--log-path \\**\
  &#x20;（可选）日志输出的文件路径。当`SIGUSR1`被处理时，文件会被重新打开。如果没有设置，记录到`stderr`。
* **--restart-epoch \\**\
  &#x20;（可选）热重启期间。（Envoy重新启动的次数，而不是重新开始）。第一次启动时默认为0。此选项告诉Envoy是否尝试创建热重启所需的共享内存区域，或者是否打开现有的共享内存区域。每次热重启时都应该增加这个值。通常在大多数情况下，应该设置此`RESTART_EPOCH`环境变量。
* **--hot-restart-version**\
  &#x20;（可选）为当前的二进制输出一个热重启兼容的版本。这可以与[GET /hot\_restart\_version](/envoy/operationsandadministration/administrationinterface.md)管理端口的输出相匹配，以确定新的二进制文件和正在运行的二进制文件是否热重启兼容。
* **--service-cluster \\**\
  &#x20;（可选）定义Envoy运行的本地服务群集名称。尽管是可选的，但是如果使用以下任何特性，应该设置：[statsd](/envoy/introduction/architectureoverview/statistics.md)，[健康检查集群验证](/envoy/v1apireference/clustermanager/cluster/healthchecking.md)，[运行时配置目录覆盖](/envoy/v1apireference/runtime.md)，[添加用户代理](/envoy/v1apireference/networkfilters/httpconnectionmanager.md)，[HTTP全局速率限制](/envoy/configurationreference/httpfilters/ratelimit.md)，[CDS](/envoy/configurationreference/clustermanager/clusterdiscoveryservice.md)和[HTTP跟踪](/envoy/introduction/architectureoverview/tracing.md)。
* **--service-node \\**\
  &#x20;（可选）定义Envoy运行的本地服务节点名称。虽然是可选的，但是如果使用以下任何功能，应该设置它们：[statsd](/envoy/introduction/architectureoverview/statistics.md)，[CDS](/envoy/configurationreference/clustermanager/clusterdiscoveryservice.md)和[HTTP跟踪](/envoy/introduction/architectureoverview/tracing.md)。
* **--service-zone \\**\
  &#x20;（可选）定义Envoy运行的本地服务区域。尽管是可选的，但是如果使用路由发现服务并且发现服务暴露[区域信息](/envoy/v1apireference/clustermanager/servicediscoveryservice.md)，则应该设置它。
* **--file-flush-interval-msec \\**\
  &#x20;（可选）文件刷新间隔，以毫秒为单位。默认为10秒。在创建文件时使用此设置来确定缓冲区刷新到文件之间的持续时间。缓冲区满或每隔一段时间刷新一次（以先到者为准）。为了获得更多（或更少）的即时刷新，调整此设置对跟踪访问日志非常有用。
* **--drain-time-s \\**\
  &#x20;（可选）Envoy在热重启期间将耗尽连接的时间（秒）。请参阅热重启概述了解[更多](/envoy/introduction/architectureoverview/hotrestart.md)信息。默认为600秒（10分钟）。通常，逐出时间应小于通过`--parent-shutdown-time-s`选项设置的父进程关闭时间。如何配置这两个设置取决于具体的部署。在边缘情况下，可能需要耗费很长时间。在服务场景中，可能使逐出和关闭时间缩短得多（例如，60s/90s）。
* **--parent-shutdown-time-s \\**\
  &#x20;（可选）Envoy在热重启期间关闭父进程之前等待的时间（秒）。请参阅热启动概述了解[更多](/envoy/introduction/architectureoverview/hotrestart.md)信息。默认为900秒（15分钟）。
* **--max-obj-name-len \\**\
  &#x20;（可选）`cluster/route_config/listener`中名称字段的最大长度（以字节为单位）。此选项通常用于群集名称自动生成的场景，通常超过会60个字符的内部限制。默认为60。\
  &#x20;**注意：此设置会影响`--hot-restart-version`的输出。如果您开始使用此选项，并设置为非默认值，则应该使用相同的值配置到热重启的新进程。**
* **--max-stats \\**\
  &#x20;（可选）热重启之间可以共享的最大统计数量。此设置会影响`--hot-restart-version`的输出; 必须使用相同的值来配置热重启进程。默认为16384。

## 返回

* [上一级](/envoy/operationsandadministration.md)
* [首页目录](/envoy/master.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lixiangyun.gitbook.io/envoy/operationsandadministration/commandlineoptions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
