dubbogo/simple/traffic/pixiu/header-conf.yaml (74 lines of code) (raw):
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
---
static_resources:
listeners:
- name: "net/http"
protocol_type: "HTTP"
address:
socket_address:
address: "0.0.0.0"
port: 8888
filter_chains:
filters:
- name: dgp.filter.httpconnectionmanager
config:
route_config:
routes:
- match:
# both prefix and header
prefix: "/user"
headers:
- name: X-A
values: ["t1","t2","t3"]
- name: X-B
values: ["t4","t5","t6"]
- name: X-A
values: ["t1"]
route:
cluster: "user-v1"
- match:
# only header
headers:
- name: X-B
values: ["t4","t5","t6"]
- name: X-C
values: ["t1"]
route:
cluster: "user-v2"
- match:
# header with regex value
headers:
- name: REG
values: ["t{2}"]
regex: true
route:
cluster: "user-v3"
http_filters:
- name: dgp.filter.http.httpproxy
config:
config:
idle_timeout: 5s
read_timeout: 5s
write_timeout: 5s
clusters:
- name: "user-v1"
lb_policy: "lb"
endpoints:
- id: 1
socket_address:
address: 127.0.0.1
port: 1315
- name: "user-v2"
lb_policy: "lb"
endpoints:
- id: 1
socket_address:
address: 127.0.0.1
port: 1316
- name: "user-v3"
lb_policy: "lb"
endpoints:
- id: 1
socket_address:
address: 127.0.0.1
port: 1317
shutdown_config:
timeout: "60s"
step_timeout: "10s"
reject_policy: "immediacy"