envoy 配置http下游与http上游演示如下:
static_resources:
listeners:
- name: listener_0
address:
socket_address:
address: 0.0.0.0
port_value: 10000 #envoy流量监听端口,类似nginx的虚拟server
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
access_log:
- name: envoy.access_loggers.stdout #日志输出配置
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
http_filters:
- name: envoy.filters.http.router #路由配置(必须)
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
route_config:
name: local_route # 路由规则配置(类似nginx的location)
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match:
prefix: "/"
route:
cluster: nginx_http
clusters: #后端集群配置(类似nginx的upstream)
- name: nginx_http
load_assignment:
cluster_name: nginx_http
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 192.168.18.132 #被代理的后端服务地址
port_value: 8000
作为后端的nginx服务配置:
server {
listen 8000;
client_header_buffer_size 1k;
large_client_header_buffers 1 2k;
location /test {
content_by_lua_block {
ngx.say("你好哈")
}
}
}
验证结果如下:
