Envoy 项目使用教程
envoyPython Subprocesses for Humans™.项目地址:https://gitcode.com/gh_mirrors/env/envoy
1. 项目的目录结构及介绍
Envoy 项目的目录结构如下:
envoy/
├── docs/
├── examples/
├── source/
│ ├── common/
│ ├── server/
│ ├── ...
├── test/
├── README.md
├── LICENSE
├── ...
docs/
: 包含项目的文档文件。examples/
: 包含示例配置和使用案例。source/
: 项目的源代码,包含多个子目录,如common/
,server/
等。test/
: 包含测试文件。README.md
: 项目介绍和基本使用说明。LICENSE
: 项目的许可证。
2. 项目的启动文件介绍
Envoy 项目的启动文件通常位于 source/
目录下。主要的启动文件是 envoy.cc
,它负责初始化和服务启动。
// source/exe/envoy.cc
int main(int argc, char** argv) {
// 初始化代码
// ...
// 启动服务
// ...
return 0;
}
3. 项目的配置文件介绍
Envoy 的配置文件通常是 yaml
格式,位于 examples/
目录下。一个典型的配置文件如下:
# examples/envoy.yaml
static_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 10000 }
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match: { prefix: "/" }
route: { cluster: service_foo }
http_filters:
- name: envoy.filters.http.router
clusters:
- name: service_foo
connect_timeout: 0.25s
type: LOGICAL_DNS
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: service_foo
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address: { address: foo.example.com, port_value: 80 }
static_resources
: 定义静态资源,包括监听器和集群。listeners
: 定义监听器,配置监听地址和过滤链。clusters
: 定义集群,配置服务地址和负载均衡策略。
以上是 Envoy 项目的基本使用教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望对您有所帮助。
envoyPython Subprocesses for Humans™.项目地址:https://gitcode.com/gh_mirrors/env/envoy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考