apisix-dashboard(2.3)目前还不支持自定义etcd读写时的前缀, 并且也不支持关闭对etcd的ssl校验. 但可以在apisix-dashboard与etcd之间加一个 etcd grpc-proxy 来实现.

apisix-dashboard -> etcd grpc-proxy(负责重写前缀,忽略证书校验) -> etcd(原本的etcd服务端)

注意: apisix(2.2)本身不支持使用 etcd grpc-proxy , 如需要对apisix使用的etcd进行代理中转 只能使用 etcd gateway


etcd grpc-proxy: etcd代理, 支持自定义命名空间(前缀), 订阅合并, 自定义前缀, 上游证书, 下游证书 官方文档

etcd gateway: 单纯的TCP转发, 支持自定义多个etcd端点并对其进行负载均衡. 官方文档


实现自定义前缀

需要注意 /apisix 这个前缀是在apisix-dashboard中写死的. 只能自定义前面部分.

比如 etcd grpc-proxy 写了前缀为 /apps/xxx

那么到了apisix-dashboard那边真实读取的路径前缀则为 /apps/xxx/apisix

apisix配置文件中的etcd前缀也需要为 /apps/xxx/apisix

下面附上docker-compose:

YAML
etcd-proxy:
    image: quay.io/coreos/etcd:v3.4.0
    restart: always
    # 将端口映射到宿主机
    # ports:
    #     - '2679:2379' 
    environment:
        - ETCDCTL_API=3
    command:
        - /usr/local/bin/etcd
        - grpc-proxy
        - start
        - --namespace=/apps/xxx # 自定义前缀, 不包含 '/apisix'
        - --endpoints=etcd.server:2379 #上游etcd地址, 多个用,分割
        - --listen-addr=0.0.0.0:2379 # 监听地址, apisix-dashboard将连接这个地址.
点击展开查看更多

忽略对上游etcd的ssl校验

由于apisix-dashboard不支持禁用对上游的ssl校验, 所以只能让中间的 etcd grpc-proxy 忽略对上游的校验, 且不对下游apisix-dashboard使用ssl.

直接在 etcd grpc-proxy 的启动命令中加上参数 --insecure-skip-tls-verify 即可忽略 etcd grpc-proxy 对上游的证书校验

版权声明

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键