linux centos 服务器从零实现envoy httprouter 实现网关路由配置
POC背景:
envoyproxy getway 作为企业级集成网关,实现对企业服务的路由转发,安全监控,限流,埋点,等一系列服务治理
具体详情,我们可以在官网文档中进行详细了解
Welcome to Envoy Gateway | Envoy Gateway
本文将从一个POC角度进行对惊醒envoy 的搭建配置及实现路由转发进行简单讲解
在搭建envoy 之前,我们需要对系统做一些基础配置,有余demo service,我选择的python ,所有做了一些前置命令,其他服务可根据服务环境做响应处理
1:sudo yum install -y wget gcc-c++ make cmake git zlib-devel openssl-devel
安装python 环境
2:安装envoy
wget https://copr.fedorainfracloud.org/coprs/vbatts/envoy/repo/epel-7/vbatts-envoy-epel-7.repo
mv vbatts-envoy-epel-7.repo /etc/yum.repos.d/
yum install envoy
依次执行以上指令
3:配置envoy
创建配置文件目录
mkdir -p /etc/envoy
创建配置文件
进到该目录下执行
touch envoy.yaml
4:编辑配置文件 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
codec_type: AUTO
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: backend
domains: ["*"]
routes:
- match: { prefix: "/service1" }
route: { cluster: service1_cluster }
- match: { prefix: "/service2" }
route: { cluster: service2_cluster }
http_filters:
- name: envoy.filters.http.router
clusters:
- name: service1_cluster
connect_timeout: 0.25s
type: LOGICAL_DNS
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: service1_cluster
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 127.0.0.1
port_value: 8081
- name: service2_cluster
connect_timeout: 0.25s
type: LOGICAL_DNS
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: service2_cluster
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 127.0.0.1
port_value: 8082
5:以上内容的具体含义后续再给大家解释,目前poc就是实现网关实现路由分发
# 在端口 8081 上启动第一个服务
python3 -m http.server 8081 &
# 在端口 8082 上启动第二个服务
python3 -m http.server 8082 &

这样就在本地启动两个service服务







