Envoy 测试笔记

Envoy 测试笔记


envoy 提供的官方镜像:

  • envoyproxy/envoy
  • envoyproxy/envoy-alpine

镜像配置文件

/etc/envoy/envoy.yaml

默认监听 端口:10000

// 测试命令

docker run -d --name envoy-test -p 10000:10000 \
-v /home/zhangfeng/envoy/conf:/etc/envoy/ \
envoyproxy/envoy

docker run -it --name envoy-test -p 10000:10000 envoyproxy/envoy bash

docker rm -f envoy-test

docker restart envoy-test

docker cp envoy-test:/etc/envoy/envoy.yaml /home/zhangfeng/envoy/conf

1、静态测试

http_connection_manager

// 配置文件如下 
- match:
                  prefix: "/app1/"
                route:
                  # host_rewrite: 192.168.1.102  # 改写host头为此值
                  prefix_rewrite: "/e3e1bf8f-46c6-4b43-b2f7-bb61a01e7962/hello/" # 改写URL前缀
                  cluster: backsvc
                  clusters:
  - name: backsvc
    connect_timeout: 0.25s
    type: LOGICAL_DNS

    # Comment out the following line to test on v6 networks
    dns_lookup_family: V4_ONLY
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: backsvc
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: 192.168.1.102
                port_value: 8080
                  
// 浏览器请求
http://192.168.1.102:10000/app1/

// 后端服务
http://192.168.1.102:8080/e3e1bf8f-46c6-4b43-b2f7-bb61a01e7962/hello


admin:
  access_log_path: /tmp/admin_access.log
  address:
    socket_address:
      protocol: TCP
      address: 127.0.0.1
      port_value: 9901

static_resources: # 静态资源
  listeners: # 监听器 https://www.envoyproxy.cn/v2apireference/listenersandlds
  - name: listener_0  # 配置该监听器的唯一名称
    address: # 监听器应该监听的地址
      socket_address: # https://www.envoyproxy.cn/v2apireference/networkaddresses
        protocol: TCP
        address: 0.0.0.0 # 套接字的地址 若配置为一个空的地址,意味着将绑定到0.0.0.0或::
        port_value: 10000  # 多个监听器可以监听Linux上的0端口,因为实际的端口将被OS分配
    filter_chains: # 这个监听器需要使用的过滤器列表
    - filters:
      - name: envoy.filters.network.http_connection_manager # 要实例化的过滤器的名称。 该名称必须与支持的过滤器匹配。内置的过滤器有:envoy.echo http_connection_manager mongo_proxy redis_proxy tcp_proxy
        config: # 对应的过滤器配置,这取决于被实例化的过滤器 e.g. http_connection_manager
          stat_prefix: ingress_http
          codec_type: AUTO
          route_config:
            name: local_route

            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes: # https://www.envoyproxy.cn/v1apireference/httprouteconfiguration/route
              - match:
                  prefix: "/app1/"
                route:
                  # host_rewrite: 192.168.1.102
                  prefix_rewrite: "/e3e1bf8f-46c6-4b43-b2f7-bb61a01e7962/hello/"
                  cluster: backsvc

          http_filters:
          - name: envoy.filters.http.router
  clusters:
  - name: backsvc
    connect_timeout: 0.25s
    type: LOGICAL_DNS

    # Comment out the following line to test on v6 networks
    dns_lookup_family: V4_ONLY
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: backsvc
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: 192.168.1.102
                port_value: 8080

2、动态资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值