apisix 本地开发环境部署

2024-08-31 04:20

本文主要是介绍apisix 本地开发环境部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

apisix 本地开发环境部署

本地开发环境部署可以采用 docker-compose 部署,配置文件如下

apisix 配置文件

apisix:node_listen: 9080 # APISIX 节点监听地址enable_ipv6: falsehttp:port: 9080 # APISIX HTTP 端口#https:#  port: 9443 # APISIX HTTPS 端口#  ssl_cert: /usr/local/apisix/ssl/apisix.crt # APISIX HTTPS 证书#  ssl_cert_key: /usr/local/apisix/ssl/apisix.key # APISIX HTTPS 证书密钥log:level: debug # APISIX 日志级别ouput: ./data/apisix/logs/apisix.log # APISIX 日志输出路径control:ip: "0.0.0.0"port: 9092deployment:type: "single" # 部署模式admin:allow_admin:- 0.0.0.0/0admin_key:- name: "admin" # APISIX Dashboard 管理员用户名key: "edd1c9f034335f136f87ad84b625c8f1" # APISIX Dashboard 管理员密码role: adminetcd:host:- "http://etcd:2379" # ETCD 集群地址timeout: 30 # ETCD 连接超时时间prefix: /apisixhealth_check_retry: 2tls:verify: falseplugins:                           # plugin list (sorted by priority)- request-id                     # priority: 12015- zipkin                         # priority: 12011#- skywalking                    # priority: 12010- opentelemetry                 # priority: 12009- ext-plugin-pre-req             # priority: 12000- fault-injection                # priority: 11000- mocking                        # priority: 10900- serverless-pre-function        # priority: 10000#- batch-requests                # priority: 4010- cors                           # priority: 4000- ip-restriction                 # priority: 3000- ua-restriction                 # priority: 2999- referer-restriction            # priority: 2990- csrf                           # priority: 2980- uri-blocker                    # priority: 2900- request-validation             # priority: 2800- chaitin-waf                    # priority: 2700- multi-auth                     # priority: 2600- openid-connect                 # priority: 2599- cas-auth                       # priority: 2597- authz-casbin                   # priority: 2560- authz-casdoor                  # priority: 2559- wolf-rbac                      # priority: 2555- ldap-auth                      # priority: 2540- hmac-auth                      # priority: 2530- basic-auth                     # priority: 2520- jwt-auth                       # priority: 2510- jwe-decrypt                    # priority: 2509- key-auth                       # priority: 2500- consumer-restriction           # priority: 2400- forward-auth                   # priority: 2002- opa                            # priority: 2001- authz-keycloak                 # priority: 2000#- error-log-logger              # priority: 1091- proxy-cache                    # priority: 1085- body-transformer               # priority: 1080- proxy-mirror                   # priority: 1010- proxy-rewrite                  # priority: 1008- workflow                       # priority: 1006- api-breaker                    # priority: 1005- limit-conn                     # priority: 1003- limit-count                    # priority: 1002- limit-req                      # priority: 1001#- node-status                   # priority: 1000#- brotli                        # priority: 996- gzip                           # priority: 995- server-info                    # priority: 990- traffic-split                  # priority: 966- redirect                       # priority: 900- response-rewrite               # priority: 899- degraphql                      # priority: 509- kafka-proxy                    # priority: 508#- dubbo-proxy                   # priority: 507- grpc-transcode                 # priority: 506- grpc-web                       # priority: 505- public-api                     # priority: 501- prometheus                     # priority: 500- datadog                        # priority: 495- loki-logger                    # priority: 414- elasticsearch-logger           # priority: 413- echo                           # priority: 412- loggly                         # priority: 411- http-logger                    # priority: 410- splunk-hec-logging             # priority: 409- skywalking-logger              # priority: 408- google-cloud-logging           # priority: 407- sls-logger                     # priority: 406- tcp-logger                     # priority: 405- kafka-logger                   # priority: 403- rocketmq-logger                # priority: 402- syslog                         # priority: 401- udp-logger                     # priority: 400- file-logger                    # priority: 399- clickhouse-logger              # priority: 398- tencent-cloud-cls              # priority: 397- inspect                        # priority: 200#- log-rotate                    # priority: 100# <- recommend to use priority (0, 100) for your custom plugins- example-plugin                 # priority: 0#- gm                            # priority: -43- aws-lambda                     # priority: -1899- azure-functions                # priority: -1900- openwhisk                      # priority: -1901- openfunction                   # priority: -1902- serverless-post-function       # priority: -2000- ext-plugin-post-req            # priority: -3000- ext-plugin-post-resp           # priority: -4000stream_plugins:                    # stream plugin list (sorted by priority)- ip-restriction                 # priority: 3000- limit-conn                     # priority: 1003- mqtt-proxy                     # priority: 1000#- prometheus                    # priority: 500- syslog                         # priority: 401# <- recommend to use priority (0, 100) for your custom plugins# wasm:
#   plugins:
#     - name: wasm_log
#       priority: 7999
#       file: t/wasm/log/main.go.wasm# xrpc:
#   protocols:
#     - name: pingpong
plugin_attr:opentelemetry:batch_span_processor:batch_timeout: 2drop_on_queue_full: falseinactive_timeout: 1max_export_batch_size: 2max_queue_size: 6collector:address: otel-collector:4318request_timeout: 3resource:service.name: APISIXtrace_id_source: x-request-id%

apisix-dashboard 配置文件

conf:listen:host: 0.0.0.0port: 9000etcd:endpoints:- http://etcd:2379prefix: /apisixauthentication:expire_time: 3600users:- username: adminpassword: admin- username: userpassword: user%

dashboard-compose 配置文件

version: '3.8'services:apisix:container_name: apisixplatform: linux/amd64restart: alwaysimage: apache/apisix:latestvolumes:- ./deploy/apisix.yml:/usr/local/apisix/conf/config.yaml:ro- ./data/apisix:/dataports:- 9080:9080- 9180:9180- 9091:9091- 9443:9443- 9092:9092networks:- apisixdashboard:container_name: apisix-dashboardplatform: linux/amd64image: apache/apisix-dashboard:2.8restart: alwaysvolumes:- ./deploy/apisix-dashboard.yml:/usr/local/apisix-dashboard/conf/conf.yaml:ro- ./deploy/apisix-dashboard/schema.json:/usr/local/apisix-dashboard/conf/schema.json- ./data/dashboard:/datadepends_on:- etcdports:- "9000:9000/tcp"networks:- apisixetcd:container_name: etcdimage: bitnami/etcd:3platform: linux/amd64volumes:- ./data/etcd/data:/bitnami/etcd/dataenvironment:- ALLOW_NONE_AUTHENTICATION=yes- ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379ports:- 2379:2379- 2380:2380networks:- apisix
networks:apisix:driver: bridge
  • 其中,在 dashboard-compose 新建 deploy 文件存放 apisix-dashboard.yml 和 apisix.yml 文件,deploy/apisix-dashboard 存放 schema.json 这个schema.json 是 apisix-dashboard 的插件配置文件
  • 在 /data/etcd/data 下存放 etcd配置文件,配置文件如下
name: 'etcd'
data-dir: '/bitnami/etcd/data'
listen-client-urls: 'http://0.0.0.0:2379'
advertise-client-urls: 'http://etcd:2379'
listen-peer-urls: 'http://0.0.0.0:2380'
initial-advertise-peer-urls: 'http://etcd:2380'
initial-cluster: 'etcd=http://etcd:2380'
initial-cluster-token: 'etcd-cluster'
initial-cluster-state: 'new'

最终我们的目录结构

在这里插入图片描述

使用 docker-compose -f dashboard-compose-local.yaml up -d 将apisix 在本地部署起来

这篇关于apisix 本地开发环境部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122869

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定