1
0
Files
envoy-apisix/envoy.yaml
2023-04-14 17:12:13 +08:00

127 lines
4.6 KiB
YAML

# docker run --rm --network host -v $(pwd):/etc/envoy -w /etc/envoy -it envoyproxy/envoy-distroless:v1.24.0
# curl -u 'admin:admin' -H 'Origin: http://lenovo.com' -i http://vcap.me:10000/ip
static_resources:
listeners:
- 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
strip_any_host_port: true
generate_request_id: false
route_config:
name: local_route
virtual_hosts:
- name: vcap_me
domains:
- vcap.me
routes:
- match:
path: /ip
route:
auto_host_rewrite: true
cluster: httpbin
metadata:
filter_metadata:
envoy.filters.http.lua:
plugins:
- name: user-code
conf:
body_filter: |
for key, value in pairs(ctx.headers) do
log.info("user-code: ", key, " = ", value)
end
- name: basic-auth
conf:
username: admin
password: admin
- name: redirect
conf:
ret_code: 301
uri: /headers
headers:
x-earth-token: xxx
x-earth-project: yyy
- match:
path: /body
direct_response:
status: 200
body:
inline_string: "Get Body\n"
metadata:
filter_metadata:
envoy.filters.http.lua:
plugins:
- name: user-code
conf:
access: |
ctx.var.path = ctx.headers:get(":path")
ctx.log.info("hit access")
body_filter: |
for key, value in pairs(ctx.var) do
ctx.log.info("var: ", key, " = ", value)
end
ctx.log.info("hit body_filter")
- match:
path: /auth
direct_response:
status: 200
body:
inline_string: "Autherd\n"
metadata:
filter_metadata:
envoy.filters.http.lua:
plugins:
- name: basic-auth
conf:
htpasswd: | # htpasswd -bnBC 10 admin admin
admin:$2y$10$7y/gRzOG6zhB5WOnGp8xw.wMF9c4Fw6ZkPwaALHlMNFG5IZy1W3Um
- match:
prefix: /
direct_response:
status: 200
body:
inline_string: "Lucky\n"
metadata:
filter_metadata:
envoy.filters.http.lua:
plugins:
- name: user-code
conf:
body_filter: |
for key, value in pairs(ctx.headers) do
ctx.log.info("header: ", key, " = ", value)
end
http_filters:
- name: envoy.filters.http.lua
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
default_source_code:
filename: /etc/envoy/core/entry.lua
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
access_log:
- name: envoy.access_loggers.stdout
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
clusters:
- name: httpbin
type: LOGICAL_DNS
load_assignment:
cluster_name: httpbin
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: httpbin.org
port_value: 80