APISIX部署

介绍

APISIX 的插件生态为 AI 场景提供了开箱即用的能力,以下是核心插件及其功能。

1. 代理与请求管理

  • ai-proxy
    ai-proxy 插件通过将插件配置转换为指定的请求格式,简化了对大语言模型(LLM)和嵌入模型的访问。它支持与 OpenAI、DeepSeek 以及其他兼容 OpenAI API 的服务进行集成。
    此外,该插件还支持将大语言模型的请求信息记录到访问日志中,例如令牌使用量、模型、首次响应时间等信息。
  • ai-proxy-multi
    ai-proxy-multi 插件通过将插件配置转换为 OpenAI、DeepSeek 以及其他兼容 OpenAI API 的服务所需的请求格式,简化了对大语言模型(LLM)和嵌入模型的访问。它扩展了 ai-proxy 的功能,增加了负载均衡、重试、回退和健康检查等功能。
    此外,该插件还支持将大语言模型的请求信息记录到访问日志中,例如令牌使用量、模型、首次响应时间等信息。

部署

1. 从github下载仓库

$ git clone https://github.com/apache/apisix-docker.git
$ cd apisix-docker/example

2. 修改docker-compose.yml

vi docker-compose.yml
这俩只保留了apisix和etcd,其他的如果想要也可以保留,nginx应该没有用的,应该是主要用于上游后端服务(Upstream Services)的角色,也就是被 APISIX 代理的目标服务器,用于测试和演示路由转发功能,而非作为网关本身运行。
此处只添加了容器名称

services:
  apisix:
    image: apache/apisix:${APISIX_IMAGE_TAG:-3.17.0-debian}
    container_name: app-apisix
    restart: always
    volumes:
      - ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
    depends_on:
      - etcd
    ##network_mode: host
    ports:
      - "9180:9180/tcp"
      - "9080:9080/tcp"
      - "9091:9091/tcp"
      - "9443:9443/tcp"
      - "9092:9092/tcp"
    networks:
      apisix:

  etcd:
    image: bitnamilegacy/etcd:3.5.11
    container_name: app-etcd
    restart: always
    volumes:
      - etcd_data:/bitnami/etcd
    environment:
      ETCD_ENABLE_V2: "true"
      ALLOW_NONE_AUTHENTICATION: "yes"
      ETCD_ADVERTISE_CLIENT_URLS: "http://app-etcd:2379"
      ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
    ports:
      - "2379:2379/tcp"
    networks:
      apisix:
networks:
  apisix:
    driver: bridge

volumes:
  etcd_data:
    driver: local

2. 修改apisix 的配置文件

vi apisix_conf/config.yaml
修改key和etcd的容器名称

apisix:
  node_listen: 9080              # APISIX listening port
  enable_ipv6: false

  enable_control: true
  control:
    ip: "0.0.0.0"
    port: 9092

deployment:
  admin:
    allow_admin:               # https://nginx.org/en/docs/http/ngx_http_access_module.html#allow
      - 0.0.0.0/0              # We need to restrict ip access rules for security. 0.0.0.0/0 is for test.

    admin_key:
      - name: "admin"
        key: edd1c9f03136f87pp84b625c8f1 # 修改
        role: admin                 # admin: manage all configuration data

      - name: "viewer"
        key: 4054f7cf07e3cc87985e76a2 # 修改
        role: viewer

  etcd:
    host:                           # it's possible to define multiple etcd hosts addresses of the same etcd cluster.
      - "http://app-etcd:2379"          # multiple etcd address # 修改
    prefix: "/apisix"               # apisix configurations prefix
    timeout: 30                     # 30 seconds

plugin_attr:
  prometheus:
    export_addr:
      ip: "0.0.0.0"
      port: 9091

3.启动

docker compose up -d

访问

http://192.168.177.24:9180/ui
输入上面的admin key就可以访问了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容