Envoy是一種開源的網絡代理和通信中間件,支持多種操作模式。它可以通過配置文件和命令行選項來驅動。以下是Envoy支持的命令行選項:
-c <path string>或--config-path <path string>
配置文件的路徑,可以是JSON/YAML/proto3格式。如果缺少此標志,--config-yaml是必需的,并且將被解析為引導配置文件。有效的擴展名是.json、.yaml、.pb和.pb_text,分別表示JSON、YAML、二進制proto3和文本proto3格式。
--config-yaml <yaml string>
引導配置文件的YAML字符串,如果--config-path也設置了,該YAML字符串中的值將覆蓋和合并從--config-path加載的引導。因為YAML是JSON的超集,所以也可以將JSON字符串傳遞給--config-yaml。
--mode <string>
操作模式,默認為serve。
- serve: 驗證JSON配置文件,然后正常提供流量。
- validate: 驗證JSON配置文件,然后退出,打印“OK”消息(此時退出代碼為0),或配置文件生成的任何錯誤(退出代碼為1)。不會生成任何網絡流量,并且不會執行熱重啟過程,因此不會干擾機器上的其他Envoy進程。
--admin-address-path <path string>
管理地址和端口號寫入的輸出文件路徑。
--local-address-ip-version <string>
用于填充服務器本地IP地址的IP地址版本。此參數會影響各種頭部信息,包括附加到X-Forwarded-For(XFF)頭部的內容。選項是v4或v6,默認為v4。
--base-id <integer>
在分配共享內存區域時使用的基本ID。在熱重啟過程中,Envoy使用共享內存區域。大多數用戶永遠不需要設置此選項。但是,如果需要在同一臺機器上運行多個Envoy,則每個正在運行的Envoy都需要一個唯一的基本ID,以便共享內存區域不會沖突。
--use-dynamic-base-id:
選擇未使用的基本ID用于分配共享內存區域。但是,最好使用預選值與--base-id。如果啟用此選項,則它將取代--base-id值。當--restart-epoch的值非零時,不得使用此標志。相反,對于隨后的熱重啟,請將--base-id選項設置為所選的基本ID。請參見--base-id-path。
--base-id-path <path_string>
將基本ID寫入給定路徑。雖然此選項與--base-id兼容,但其預期用途是提供對由--use-dynamic-base-id選擇的動態基本ID的訪問。
--concurrency <integer>
要運行的工作線程數。如果未指定,默認為機器上的硬件線程數。如果設置為零,Envoy仍將運行一個工作線程。
-l <string>或--log-level <string>
日志級別。非開發人員通常不應設置此選項。有關可用日志級別和默認值,請參見幫助文本。
--component-log-level
每個組件的日志級別的逗號分隔列表。非開發人員通常不應設置此選項。例如,如果要使上游組件以調試級別運行,并使連接組件以跟蹤級別運行,則應將upstream:debug、connection:trace傳遞給此標志。請參見/source/common/common/logger.h中的ALL_LOGGER_IDS,了解組件列表。
--cpuset-threads
如果未設置--concurrency,則使用此標志來控制工作線程數。在基于Linux的系統上,如果啟用,將使用分配的cpuset大小來確定工作線程數。否則,工作線程數將設置為機器上的硬件線程數。您可以在內核文檔中了解有關cpusets的更多信息。
--log-path <path string>
日志寫入的輸出文件路徑。當處理SIGUSR1時,此文件將重新打開。如果未設置此項,則記錄到stderr中。
--log-format <format string>
是用于設置日志信息格式的選項,如果不設置,將會使用默認格式字符串"[%Y-%m-%d %T.%e][%t][%l][%n] [%g:%#] %v"。支持的格式標簽包括:實際記錄的信息(%v)、線程ID(%t)、進程ID(%P)、日志記錄器的名稱(%n)、日志級別(%l)、日期時間表示(%c)、文件名和行號(%a)、函數名(%!)等。
--log-format-escaped
--log-format-escaped是用于啟用應用日志的轉義的選項,這可以用于防止單個日志行跨越底層日志的多個行。這會對列表中的所有轉義序列進行清理。請注意,每行的最終EOL字符將不會被轉義以保留行格式。
--restart-epoch
是用于設置熱重啟時的重啟次數的選項。它指定Envoy是否嘗試創建所需的共享內存區域,還是打開現有的共享內存區域。該選項應在每次執行熱重啟時增加。
--enable-fine-grain-logging
是用于啟用細粒度日志記錄器的選項,可實現按文件級別控制日志記錄和運行時更新管理界面。啟用后,主日志宏包括ENVOY_LOG,ENVOY_CONN_LOG,ENVOY_STREAM_LOG和ENVOY_FLUSH_LOG將使用每個文件的記錄器,不再需要Envoy::Logger::Loggable。
--socket-path
是用于設置熱重啟時用于套接字地址的輸出文件路徑的選項。環oy進程必須使用相同的值才能一起參與熱重啟。
--socket-mode
是用于設置熱重啟時用于套接字文件權限的選項,必須是有效的八進制文件權限,例如644。默認值為600。