DataEase v2 通过 APISIX 开启 HTTPS 以及 HTTP2


飞致云 发布于 2026-04-28 / 6 阅读 / 0 评论 /

在数字化时代,数据可视化的价值日益凸显,DataEase V2 作为一款开源的数据可视化与分析平台,为企业提供了强大的数据洞察能力。然而,随着数据安全合规要求的提升,如何在保障数据可视化服务高性能的同时,确保传输链路的安全性成为关键挑战。通过集成云原生 API 网关 APISIX,可以为 DataEase V2 轻松开启 HTTPS 加密通信,构建安全、高效、可扩展的数据访问网关,有效应对数据泄露、中间人攻击等安全威胁,同时简化运维复杂度,释放数据价值。

1.修改 apisix 配置文件开启 SSL 以及 h2。

配置文件路径/opt/dataease2.0/apisix/apisix_conf/config.yaml
apisix:
  node_listen: 9080              # APISIX listening port
  ssl:
    enable: true                 # 开启 SSL
    listen:
      - port: 9443        # HTTPS 端口
  enable_ipv6: false
  enable_http2: true

  enable_control: true
  control:
    ip: "0.0.0.0"
    port: 9092
deployment:
  admin:
    allow_admin:
      - 0.0.0.0/0

    admin_key:
      - name: "admin"
        key: DE_APISIX_KEY
        role: admin

  etcd:
    host:
      - "http://apisix-etcd:2379"
    prefix: "/apisix"
    timeout: 30

对文件进行修改。

2.更改 docker-compose-apisix.yml 文件增加端口映射。

version: "3"

services:
  apisix-dashboard:
    image: registry.cn-qingdao.aliyuncs.com/dataease/apisix-dashboard:3.0.1-alpine
    container_name: apisix-dashboard
    restart: always
    volumes:
    - ${DE_BASE}/dataease2.0/apisix/dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml
    ports:
    - ${DE_APISIX_DASHBOARD_PORT}:9000
    networks:
      dataease-network:

  apisix:
    image: registry.cn-qingdao.aliyuncs.com/dataease/apisix:3.14.1-debian
    container_name: apisix
    environment:
      - TZ=Asia/Shanghai
    restart: always
    volumes:
      - ${DE_BASE}/dataease2.0/apisix/apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
      - ${DE_BASE}/dataease2.0/apisix/logs:/usr/local/apisix/logs
      - ${DE_BASE}/dataease2.0/apisix/plugins/cas-auth.lua:/usr/local/apisix/apisix/plugins/cas-auth.lua
      - ${DE_BASE}/dataease2.0/apisix/plugins/openid-connect.lua:/usr/local/apisix/apisix/plugins/openid-connect.lua
      - ${DE_BASE}/dataease2.0/apisix/plugins/hmac-auth.lua:/usr/local/apisix/apisix/plugins/hmac-auth.lua
    depends_on:
      - etcd
    ports:
      - ${DE_APISIX_PORT}:9080
      - 9443:9443
    networks:
      dataease-network:

  etcd:
    image: registry.cn-qingdao.aliyuncs.com/dataease/etcd:3.5.10
    container_name: apisix-etcd
    restart: always
    volumes:
      - ${DE_BASE}/dataease2.0/data/etcd_data:/bitnami/etcd
    environment:
      ETCD_ENABLE_V2: "true"
      ALLOW_NONE_AUTHENTICATION: "yes"
      ETCD_ADVERTISE_CLIENT_URLS: "http://apisix-etcd:2379"
    networks:
      dataease-network:



3. 重启 DataEase服务。

dectl restart


4.把证书上传至服务器并传输到容器里。

由于容器里默认是以 apisix 用户进行登录,并且 apisix 官方镜像并没有安装 curl 命令需要自行安装。

#借助 -u 0 参数以root身份登录进 apisix 容器
docker exec -it -u 0 apisix bash
apt update
apt install -y curl
#用来存储 SSL 证书
mkdir /ssl
exit

把服务器里的证书上传至容器里。

docker cp cert.pem apisix:/ssl
docker cp key.pem apisix:/ssl

5.从 config.yaml 中获取 admin_key,并添加证书到 apisix 服务。

查看/opt/dataease2.0/apisix/apisix_conf/config.yaml文件




#key 的值为密钥
cat config.yaml
#柯验证 key 是否正确
docker exec -it -u 0 apisix curl http://127.0.0.1:9180/apisix/admin/routes \
-H "X-API-KEY: DE_APISIX_KEY"
#构建curl请求,自行替换
#"X-API-KEY: DE_APISIX_KEY 替换为配置文件中的密钥
#  "cert": "'"$(cat /ssl/cert.pem)"'",  证书公钥地址
#   "key": "'"$(cat /ssl/key.pem)"'",   证书私钥地址
#    "snis": ["de.lmqzcr.top"]   域名信息
docker exec -it -u 0 apisix curl http://127.0.0.1:9180/apisix/admin/ssls/1 \
-H "X-API-KEY: DE_APISIX_KEY" \
-X PUT -d '{
     "cert": "'"$(cat /ssl/cert.pem)"'",
     "key": "'"$(cat /ssl/key.pem)"'",
     "snis": ["de.lmqzcr.top"]
}


6.确认是否正常写入,并重启 DataEase 服务。

# 进入 etcd 容器
docker exec -it apisix-etcd bash

# 查看 SSL 配置
etcdctl get /apisix/ssl --prefix
exit
#重启 DataEase 服务
dectl restart



7.测试https是否生效

curl -k https://de.lmqzcr.top:9443/ -v


至此 https 以开启完成可上页面访问验证。

注:其他配置可参考 apisix 官网配置。地址:https://apisix.apache.org/zh/docs/apisix/certificate/












是否对你有帮助?